; ==================================================
; DIRECT PAGE REGISTERS (VARIABLES) $0000-$00FF:
; ==================================================
; $37 - Buttons_Hold_L
; $38 - Buttons_Hold_H
; $3B - Buttons_Pressed_L
; $3C - Buttons_Pressed_H
; $47 - DMA Enable		; goes to $420B in Subroutine SetScreenOptions at $0000:0C46
; $48 - HDMA Enable		; goes to $420C in Subroutine SetScreenOptions at $0000:0C46
; $49 - BG1-H-Scroll Low
; $4A - BG1-H-Scroll High
; $4B - BG1-V-Scroll Low
; $4C - BG1-V-Scroll High
; $4D - BG2-H-Scroll Low
; $4E - BG2-H-Scroll High
; $4F - BG2-V-Scroll Low
; $50 - BG2-V-Scroll High
; $51 - BG3-H-Scroll Low
; $52 - BG3-H-Scroll High
; $53 - BG3-V-Scroll Low
; $54 - BG3-V-Scroll High
; $55 - INIDISP			; goes to $2100 in Subroutine SetScreenOptions at $0000:0C46
; $56 - BGMODE			; goes to $2105 in Subroutine SetScreenOptions at $0000:0C46
; $57 - BG1SC			; goes to $2107 in Subroutine SetScreenOptions at $0000:0C46
; $58 - BG2SC			; goes to $2108 in Subroutine SetScreenOptions at $0000:0C46
; $59 - BG12NBA			; goes to $2109 in Subroutine SetScreenOptions at $0000:0C46
; $5A - M7SEL			; goes to $211A in Subroutine SetScreenOptions at $0000:0C46
; $5B - M7AL			; goes to $211B in Subroutine SetScreenOptions at $0000:0C46
; $5C - M7AH			; goes to $211B in Subroutine SetScreenOptions at $0000:0C46
; $5D - M7BL			; goes to $211C in Subroutine SetScreenOptions at $0000:0C46
; $5E - M7BH			; goes to $211C in Subroutine SetScreenOptions at $0000:0C46
; $5F - M7CL			; goes to $211D in Subroutine SetScreenOptions at $0000:0C46
; $60 - M7CH			; goes to $211D in Subroutine SetScreenOptions at $0000:0C46
; $61 - M7DL			; goes to $211E in Subroutine SetScreenOptions at $0000:0C46
; $62 - M7DH			; goes to $211E in Subroutine SetScreenOptions at $0000:0C46
; $63 - M7XL			; goes to $211F in Subroutine SetScreenOptions at $0000:0C46
; $64 - M7XH			; goes to $211F in Subroutine SetScreenOptions at $0000:0C46
; $65 - M7YL			; goes to $2120 in Subroutine SetScreenOptions at $0000:0C46
; $66 - M7YH			; goes to $2120 in Subroutine SetScreenOptions at $0000:0C46
; $67 - TMAIN			; goes to $212C in Subroutine SetScreenOptions at $0000:0C46
; $68 - TSUB			; goes to $212D in Subroutine SetScreenOptions at $0000:0C46
; $69 - TMAIN_WINDOW		; goes to $212E in Subroutine SetScreenOptions at $0000:0C46
; $6A - TSUB_WINDOW		; goes to $212F in Subroutine SetScreenOptions at $0000:0C46
; $6B - CGWSEL			; goes to $2130 in Subroutine SetScreenOptions at $0000:0C46
; $6C - CGADSUB			; goes to $2131 in Subroutine SetScreenOptions at $0000:0C46
; $6D - COLDATA			; goes to $2132 in Subroutine SetScreenOptions at $0000:0C46

; ==================================================
; RAM USAGE
; ==================================================
;[$0000 - $00FF - DP-Registers, see above]
; $0100 - $01FF - Stack(?)
; $0200 - $03FF - OAM TEMP - Low Table
; $0400 - $041F - OAM TEMP - High Table
;
; $0440 - $04?? - VRAM DMA Pipeline (Data for the DMA Registers, transfer in Subroutine VRAM_DMA at $0000:0AA2)
;
; $0700 - $077F - DMA Pipeline (transfer in Subroutine Flexi_VRAM_DMA at $0000:1570).
;
; $0A00 - $0BFF - CGRAM TEMP
;
; $0E00 - $0E07 - VRAM DMA Pipeline (Data for the DMA Registers, transfere in Subroutine Single_VRAM_DMA at $0000:1690)

; ==================================================
; SRAM USAGE
; ==================================================
; $0000 - $01FF - Game Slot (temporary one?)
; $0200 - $03FF - Game Slot
; $0400 - $05FF - Game Slot
; $0600 - $07FF - Game Slot

; ==========
; GAME SLOTS
; ==========
; $000 - $007 - "IHA_Ram." - ($49, $48, $41, $5F, $52, $61, $6D, $2E)
;
; $1FE - $1FF - 16 Bit Checksum

; ==================================================
; ROM
; ==================================================
; ==========
; BANK $00
; ==========
; $0000 - $0031 - ROM STARTS HERE. FBlank, STZ DMA/HDMA, STZ APU-Register; JML to Bank $0A
; $0032 - $022A - INITIALIZATION
; $022B - $0738?- Intro(?)
; $0739 - $0778 - Graphic Data(?)
; $0779 - $0784 - SUBROUTINE: (?)
;
; $078D - $07AA - SUBROUTINE: (?)
;
; $080D - $0825 - SUBROUTINE: (?)
; $0826 - $0925 - TABLE: (?)
;
; $0AA2 - $0AEC - SUBROUTINE: DMA: DMA-Registers filled with data in pipeline at $0400 (sent to VRAM)
; $0AED - $0B3B - SUBROUTINE: DMA: Super Flexible DMA Subroutine
; $0B3C - $0B7C - SUBROUTINE: DMA: WRAM-Temp-Registers to OAM & CGRAM
;
; $0BFD - $0C45 - SUBROUTINE: BG1/2/3-Scroll set according to DP-Registers $49 to $54
;
; $0CBC - $0D06 - SUBROUTINE: OAMTemp in $0200 - $0420 gets cleared; All Sprite-X-Coordinates are set offscreen
;
; $1570 - $15B1 - SUBROUTINE: DMA: DMA-Registers filled with data in pipeline at $0700
;
; $1690 - $16C2 - SUBROUTINE: DMA: DMA-Registers filled with data in pipeline at $0E00 (sent to VRAM)
;
; $3D3E - $3D57 - SUBROUTINE: JoyPad: Update Hold/Pressed-Registers
; $3D58 - $3D5A - JUMP
; $3D5B - $3E1C - SUBROUTINE: JoyPad: (?)
; $3E1D - $3E90 - SUBROUTINE: JoyPad: (?)
; $3E91 - $3EA7 - SUBROUTINE: JoyPad: Main-SR that calls different other JoyPad-SRs
;
; $43E9 - $440D - SUBROUTINE: Check (and probably clear) all save states
; $440E - $448A - SUBROUTINE: Check a save state if it contains valid data; else clear it; Check Sum calculation

; ==========
; BANK $0A
; ==========
; $0000 - $000? - A few Jumps
;
; $1E7B - $1E88 - Some Init-Subroutine for the SPC
;
; $1F64 - $1FDD - Some Init-Subroutine for the SPC